The present invention relates to apparatus for control tones and record media of a tone control program.
Recent electronic musical instruments use a single digital signal processor (DSP) to perform a plurality of tone control or processing functions, such as tone generation and sound effects processing, in place of a plurality of dedicated hardware circuits.
As well known in the art, DSP executes a program involving signal processing algorithms to accomplish the desired signal processing functions. The signal processing algorithms include processing information (program instructions and fixed data) and information to be processed (work data) and they are stored in a read-write storage, such as RAM. The program is loaded into the storage to provide DSP with the desired signal processing functions.
When it is desired to change the signal processing functions of DSP, or even part thereof, it is necessary to prepare a new program. This is troublesome and wasteful.
A module-based system might be proposed. In accordance with the module-based system, each of the signal processing functions is arranged so as to correspond to a module which includes processing information and information to be processed. In place of loading the composite program, the system load a plurality of modules into storage of DSP. The modules reside in unique or different storage areas, called, xe2x80x9cdivision areasxe2x80x9d from one another, and independently manage their own storage areas. With the module-based system, it is much easier to modify part of the signal processing functions of DSP.
The module-based system using the independent storage management has the problem of addressing when DSP operation shifts from one module to another. Specifically, when it completes execution of a module, DSP must determine a start address of the next module, for instance, start address of a work area which stores work data to be processed by the next module. The work area start address of the next module might be obtained by incrementing the work area last address of the current module that stores work data last processed by the current module on the condition that size of work data handled by the current module be the same as size (storage capacity) of the work area. For convenience of module software preparation, it is often to reserve a work area which is greater in size than work data actually required. In such a case, the incremented address cannot point to the start location of the next work area. As a result, DSP cannot accomplish the required signal processing functions.
An object of the invention is to provide an apparatus for tone control which can sequentially and successfully execute a plurality of signal processing modules without exerting the addressing problem.
A specific object of the invention is to provide an apparatus for tone control which allows work areas greater in size than required work data and yet can successfully address the next work area during the operation when the current signal processing module using the current work area has been executed.
Another object of the invention is to provide a record medium of a tone control program readable by a computer which can sequentially and successfully execute a plurality of signal processing modules without exerting the addressing problem.
In accordance with an aspect of the invention, there is provided an apparatus for tone control which comprises:
storage means for storing a plurality of signal processing modules representative of algorithms according to which a tone signal is processed, each of said plurality of signal processing modules including a plurality of data groups;
said storage means including a plurality of storage areas, each divided into a plurality of division areas for said plurality of signal processing modules and assigned to a different one of said plurality of data groups;
transfer means for transferring said plurality of signal processing modules to said storage means in such a manner that corresponding division areas in said plurality of storage areas store one of said plurality of signal processing modules;
signal processing means for sequentially executing said plurality of signal processing modules to thereby processing the tone signal; and
address control means for transferring to said signal processing means address qualifying information on difference between size of a specified data group for a signal processing module and size of a specified division area that stores said specified data group for said signal processing module to thereby causing said signal processing means to determine, when having completed execution of said signal processing module, a start address of said specified division area for the next signal processing module from said address qualifying information.
With this arrangement, when it has completed execution of a signal processing module, the signal processing means can successfully address the next specified division area (e.g., work area) for the next signal processing module by using the address qualifying information.
A further aspect of the invention provides a record medium of a tone control program readable by a computer, the tone control program controlling the computer to function as:
storage means for storing a plurality of signal processing modules representative of algorithms according to which a tone signal is processed, each of said plurality of signal processing modules including a plurality of data groups;
said storage means including a plurality of storage areas, each divided into a plurality of division areas for said plurality of signal processing modules and assigned to a different one of said plurality of data groups;
transfer means for transferring said plurality of signal processing modules to said storage means in such a manner that corresponding division areas in said plurality of storage areas store one of said plurality of signal processing modules;
signal processing means for sequentially executing said plurality of signal processing modules to thereby processing the tone signal; and
address control means for transferring to said signal processing means address qualifying information on difference between size of a specified data group for a signal processing module and size of a specified division area that stores said specified data group for said signal processing module to thereby causing said signal processing means to determine, when having completed execution of said signal processing module, a start address of said specified division area for the next signal processing module from said address qualifying information.